package com.sikaryofficial.backend.domain.dto.req.information;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sikaryofficial.common.core.annotation.SqlEscapeDeserializer;
import com.sikaryofficial.common.core.web.page.PageDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 文章审核列表请求入参
 *
 * @author qinjinyuan
 * @date 2024-04-10
 */
@ApiModel(description = "文章审核列表请求入参")
@Getter
@Setter
@ToString
public class ArticleAuditListReq extends PageDomain {
    /**
     * 审核状态:0-草稿,1-审核中(点击发布),2-审核通过(发布成功),3-审核不通过
     */
    @ApiModelProperty("审核状态:0-草稿,1-审核中(点击发布),2-审核通过(发布成功),3-审核不通过")
    private Integer auditStatus;

    @ApiModelProperty("发布人ID")
    private Long createdBy;

    /**
     * topic id
     */
    @ApiModelProperty("topic id")
    private Long topicId;

    /**
     * 是否为kol文章
     */
    @ApiModelProperty("是否为kol文章")
    private Integer hasKol;

    /**
     * topic是否打tag
     */
    @ApiModelProperty("topic是否打tag")
    private Integer hasTagEnable;

    /**
     * 品牌
     */
    @ApiModelProperty("品牌")
    private String brandNo;

    /**
     * headline
     */
    @ApiModelProperty("headline")
    @Length(max = 500, message = "keyword could not greater than 500 characters")
    @JsonDeserialize(using = SqlEscapeDeserializer.class)
    private String headline;

    @ApiModelProperty(hidden = true)
    @Length(max = 100, message = "createdName could not greater than 100 characters")
    @JsonDeserialize(using = SqlEscapeDeserializer.class)
    private String createdName;

    @ApiModelProperty(hidden = true)
    private Integer contentType;

    /**
     * 活动开始时间
     */
    @ApiModelProperty("活动开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 活动结束时间
     */
    @ApiModelProperty("活动结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 国家
     */
    @ApiModelProperty("国家")
    private String country;

    /**
     * 区域
     */
    @ApiModelProperty("区域")
    private String area;

    /**
     * 城市
     */
    @ApiModelProperty("城市")
    private String city;

    @ApiModelProperty(hidden = true)
    private Integer tenantId;
}
